179 research outputs found
On the Effect of Semantically Enriched Context Models on Software Modularization
Many of the existing approaches for program comprehension rely on the
linguistic information found in source code, such as identifier names and
comments. Semantic clustering is one such technique for modularization of the
system that relies on the informal semantics of the program, encoded in the
vocabulary used in the source code. Treating the source code as a collection of
tokens loses the semantic information embedded within the identifiers. We try
to overcome this problem by introducing context models for source code
identifiers to obtain a semantic kernel, which can be used for both deriving
the topics that run through the system as well as their clustering. In the
first model, we abstract an identifier to its type representation and build on
this notion of context to construct contextual vector representation of the
source code. The second notion of context is defined based on the flow of data
between identifiers to represent a module as a dependency graph where the nodes
correspond to identifiers and the edges represent the data dependencies between
pairs of identifiers. We have applied our approach to 10 medium-sized open
source Java projects, and show that by introducing contexts for identifiers,
the quality of the modularization of the software systems is improved. Both of
the context models give results that are superior to the plain vector
representation of documents. In some cases, the authoritativeness of
decompositions is improved by 67%. Furthermore, a more detailed evaluation of
our approach on JEdit, an open source editor, demonstrates that inferred topics
through performing topic analysis on the contextual representations are more
meaningful compared to the plain representation of the documents. The proposed
approach in introducing a context model for source code identifiers paves the
way for building tools that support developers in program comprehension tasks
such as application and domain concept location, software modularization and
topic analysis
A Situational Implementation Method for Business Process Management Systems
For the integrated implementation of Business Process Management and supporting information systems many methods are available. Most of these methods, however, apply a one-size fits all approach and do not take into account the specific situation of the organization in which an information system is to be implemented. These situational factors, however, strongly determine the success of any implementation project. In this paper a method is provided that establishes situational factors of and their influence on implementation methods. The provided method enables a more successful implementation project, because the project team can create a more suitable implementation method for business process management system implementation projects
Процесс коммуникации в клинической диагностике. Семиотический подход
Досліджено природу знаку, його функції, особливості знаків ситуації в клінічній діагностиці, а також різні аспекти трансперсональної комунікації. Розглянуто об’єктивні ознаки–знаки, симптоми, їх словесні позначення, необхідні для переведення діагностичної інформації з рівня сигналів на рівень повідомлення шляхом виокремлення сенсу в процесі їх розуміння.The nature of a sign, its functions, distinctive features of a sign situation in clinical diagnostics, and also various aspects of transpersonal communications are investigated. Objective attributes such as signs, symptoms, and their verbal denotations are considered that are necessary to translate diagnostic information from the level of signals to the level of a message by extraction their meaning during their understanding
Source Data for the Focus Area Maturity Model for Software Ecosystem Governance
We define a software ecosystem as a set of organizations collaboratively serving a market for software and services. Typically these ecosystems are underpinned by a common technology, such as an extendable software platform. This data set supports the article that describes the Software Ecosystem Governance Maturity Model (SEG−M2) [50]. The model has the goal to support software ecosystem orchestrators in the management and governance of the actors in their ecosystems in a structured way. Through a critical structured literature review, 168 practices have been collected. These practices have been evaluated through six case studies at software ecosystem orchestrators. The practices are described with a practice code, a practice name, a practice description, required success conditions, the person responsible for the practice, and the associated literature where the practice was identified
WSCDL to WSBPEL: A Case Study of ATL-based Transformation
The ATLAS Transformation Language (ATL) is a hybrid transformation language that combines declarative and imperative programming elements and provides means to define model transformations. Most transformations using ATL reported in the literature show a simplified use of ATL, and often involve a single transformation. However, in more realistic situations, multiple transformations may be necessary, especially in case the original input/output models are not represented in the metametamodeling representation expected by the transformation engine. In this paper, we discuss a model transformation from service choreography (WSCDL) to service orchestration (WSBPEL), which cannot be performed in a single ATL transformation due to the mismatch between the concrete XML syntax of these languages and the metametamodeling representation expected by the ATL transformation engine. This requires auxiliary transformations in which this mismatch is resolved. In principle, the required auxiliary transformations can be implemented using XSLT or a general-purpose programming language like Java. However, in our case study, we evaluate the use of ATL to perform these transformations. We exploit ATL by leveraging the ATL's XML\ud
injection and the XML extraction mechanisms to perform the overall transformation in terms of a transformation chain
Software release and deployment at Exact: a case study report
For vendors of product software it is becoming more and more difficult to manage and control the software configurations of all their users at the customer's site. It is labour intensive and error-prone to (semi)automatically register detailed lists of the software artefacts in use by each customer. To alleviate this problem the Deliver project proposes an Intelligent Software Knowledge Base that contains all facts about all artefacts together with their relevant attributes, relations and constraints. In this way, high-quality software configurations can be calculated automatically from a small set of key parameters. It also becomes possible to pose what-if questions about necessary or future upgrades of a customer's configuration. This document describes a case study performed at Exact Software into the processes of release and deployment. The results of the case study are presented, existing of process descriptions of the development, release and deployment processes at Exact Software, a comparison to the Intelligent Software Knowledge Base, and an analysis of the result
Applications of Multi-view Learning Approaches for Software Comprehension
Program comprehension concerns the ability of an individual to make an
understanding of an existing software system to extend or transform it.
Software systems comprise of data that are noisy and missing, which makes
program understanding even more difficult. A software system consists of
various views including the module dependency graph, execution logs,
evolutionary information and the vocabulary used in the source code, that
collectively defines the software system. Each of these views contain unique
and complementary information; together which can more accurately describe the
data. In this paper, we investigate various techniques for combining different
sources of information to improve the performance of a program comprehension
task. We employ state-of-the-art techniques from learning to 1) find a suitable
similarity function for each view, and 2) compare different multi-view learning
techniques to decompose a software system into high-level units and give
component-level recommendations for refactoring of the system, as well as
cross-view source code search. The experiments conducted on 10 relatively large
Java software systems show that by fusing knowledge from different views, we
can guarantee a lower bound on the quality of the modularization and even
improve upon it. We proceed by integrating different sources of information to
give a set of high-level recommendations as to how to refactor the software
system. Furthermore, we demonstrate how learning a joint subspace allows for
performing cross-modal retrieval across views, yielding results that are more
aligned with what the user intends by the query. The multi-view approaches
outlined in this paper can be employed for addressing problems in software
engineering that can be encoded in terms of a learning problem, such as
software bug prediction and feature location
A process framework and typology for software product updaters.
Product software is constantly evolving through extensions, maintenance, changing requirements, changes in configuration settings, and changing licensing information. Managing evolution of released and deployed product software is a complex and often underestimated problem that has been the cause of many difficulties for both software vendors and customers. This paper presents a framework and typology to characterize techniques that support product software update methods. The framework is based on a detailed process model of software updating. Finally, this paper assesses and surveys a variety of existing techniques against the characterisation framework and lists unsolved problems related to software product updater
A systematic literature review on trust in the software ecosystem
The worldwide software ecosystem is a trust-rich part of the world. Throughout the software life cycle, software engineers, end-users, and other stakeholders collaboratively place their trust in major hubs in the ecosystem, such as package managers, repository services, and software components. However, as our reliance on software grows, this trust is frequently violated by bad actors and crippling vulnerabilities in the software supply chain. This study aims to define software trust in the worldwide SECO, that is, to determine what signifies a trustworthy system, actor, or hub. We conduct a systematic literature review on the concept of trust in the software ecosystem. We acknowledge that trust is something between two actors in the software ecosystem, and we examine what role trust plays in the relationships between end-users and (1) software products, (2) package managers, (3) software producing organizations, and (4) software engineers. Two major findings emerged from the systematic literature review. To begin, we define trust in the software ecosystem by examining the definition and characteristics of trust. Second, we provide a list of trust factors that can be used to assemble an overview of software trust. Trust is critical in the communication between actors in the worldwide software ecosystem, particularly regarding software selection and evaluation. With this comprehensive overview of trust, software engineering researchers have a new foundation to understand and use trust to create a trustworthy software ecosystem
- …